$(function () {
    //模板引擎过滤器函数，处理发表时间，格式化
    template.defaults.imports.dateFormate = function (value) {
        //console.log(value);日期时间字符串
        var dt = new Date(value);
        //格式化年月日
        var y = dt.getFullYear();
        var m = dt.getMonth() + 1;
        m = padZero(m);
        var d = dt.getDate();
        d = padZero(d);


        var hh = dt.getHours();
        hh = padZero(hh);
        var mm = dt.getMinutes();
        mm = padZero(mm);
        var ss = dt.getSeconds();
        ss = padZero(ss);
        return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
    }
    //补零
    function padZero(n) {
        /* if (n < 10) {
            return '0' + n;
        } else {
            return n;
        } */
        return n < 10 ? '0' + n : n;
    }
    //弹层对象
    var layer = layui.layer;
    //参数对象
    var q = {
        pagenum: 1,//默认获取第一页的数据
        pagesize: 3,//默认每页展示3条数据
        cate_id: '',//默认为空，获取所有分类的文章
        state: ''//默认为空，获取所有状态的文章
    }
    /* 1-获取文章数据，渲染到页面 */
    initArticle();
    function initArticle() {
        $.ajax({
            method: 'get',
            url: '/my/article/list',
            data: q,
            success: function (res) {
                //console.log(res);
                if (res.status !== 0) {
                    return layer.msg(res.message, { icon: 5 });
                }
                //渲染到页面
                var htmlStr = template('tpl-article', res);
                $('tbody').html(htmlStr);
                //渲染分页按钮
                layui.laypage.render({
                    elem: 'pageBox' ,//注意，这里的 test1 是 ID，不用加 # 号
                    count: res.total, //数据总数，从服务端得到
                    limit: q.pagesize,//每页显示多少条
                    curr: q.pagenum,//当前第几页，对应按钮高亮
                    limits:[2,4,6,8],
                    layout: ['limit', 'page', 'prev', 'next', 'count'],

                    jump: function (obj,first) {
                        /* 
                        obj包含了当前分页的所有参数，obj.curr 得到当前页，以便向服务端请求对应页的数据
                        obj.limit 得到每页显示的条数
                        first 是渲染按钮时调用了jump,还是切换按钮时调用了jump
                        渲染时：first是true  切换时：first是undefined */
                        //修改参数对象q
                        q.pagenum = obj.curr;
                        q.pagesize = obj.limit;
                        //只有单击按钮时，才需要重新获取数据
                        //重新获取文章数据
                        /* if (first === undefined) {
                            initArticle();
                        } */
                        if (!first) {
                            initArticle();
                        }
                    }
                });
                
            }
        })
    }

    /* 2-获取所有分类，渲染到下拉列表 */
    initCate();
    function initCate() {
        $.ajax({
            method: 'get',
            url: '/my/article/cates',
            success: function (res) {
                //console.log(res);
                if (res.status !== 0) {
                    return layer.msg(res.message, { icon: 5 });
                }
                //渲染到页面
                var htmlStr = template('tpl-cate', res);
                $('[name=cate_id]').html(htmlStr);
                //手动渲染
                layui.form.render();
            }
        })
    }

    /* 3-完成筛选功能 */
    $('#form-search').on('click', function (e) {
        e.preventDefault();
        //修改数据，并修改参数对象q
        q.cate_id = $('[name=cate_id]').val();
        q.state = $('[name=state]').val();
        //重新获取文章数据
        initArticle();
    })

    /* 4-完成删除功能 */
    $('tbody').on('click', '.btn-delete', function () {
        //获取一下删除按钮的数量
        var btns = $('.btn-delete').length;
        //获取被删除文章的id
        var id = $(this).attr('data-id');
        //询问
        layer.confirm('您确定要删除吗', { icon: 3, title: '提示' }, function (index) {
            $.ajax({
                method: 'get',
                url: '/my/article/delete/'+id,
                success: function (res) {
                    //console.log(res);
                    if (res.status !== 0) {
                        return layer.msg(res.message, { icon: 5 });
                    }
                    layer.msg(res.message, { icon: 6 });
                    if (btns === 1) {
                        //q.pagenum--;
                        q.pagenum = q.pagenum === 1 ? q.pagenum : q.pagenum - 1;
                    }
                    //重新获取并渲染数据
                    initArticle();
                
                }
            })
            layer.close(index);
        })
    })

})